// 导出一个对象，该对象拥有get与post方法用于发送相应类型的请求
import qs from 'qs';
import axios from 'axios';
import store from '../store';
const instance = axios.create(); 

/** 添加请求拦截器 */
instance.interceptors.request.use(function (config) {
    // 在发送请求之前, 为config配置authorization消息头
    let token = store.state.token  // token字符串
    if(token){
        config.headers.authorization = token
    }
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });

const myaxios = {
    /**
     * 用于发送 get 请求
     * @param {string} url 请求路径
     * @param {object} params 请求参数对象  {参数名:参数值}
     */
    get(url, params){
        return instance({
            url, 
            method: 'GET',
            params
        })
    },

    /**
     * 用于发送 post 请求
     * @param {string} url 请求路径
     * @param {object} data 请求参数对象  {参数名:参数值}
     */
    post(url, data){
        return instance({
            url, 
            method: 'POST',
            data: qs.stringify(data)
        })
    }
}

export default myaxios;